In the world of video games and real-time character animation, existing animation systems including animation controller systems and blend tree systems have a high level of control with respect to gameplay requirements and visual fidelity. Animation quality can be high with the two systems, but the required time investment grows exponentially. There are many different approaches that have been proposed to ease the burden on game developers in order to generate high quality character animation while allowing precise control of responsiveness. Most of the approaches have one or more of the following drawbacks: limited to a particular type of movement (e.g., locomotion), are expensive in terms of runtime performance, produce poor quality, have low turnaround times and don't allow for procedural modifications (e.g., to stretch and squash a jump animation to match an environment).
Overall, the different approaches can be broadly divided into physically-based controllers and data-driven controllers. Physically-based controllers are effective in generating dynamic movements, where the characters make use of elasticity, energy minimization and conservation of momentum. Such methods can be further sub-divided into trajectory-based approaches where the motion is optimized based on physical properties such as torques, momentum and feasibility, and torque-based approaches where the body is directly driven by torques. Physically-based controllers are powerful tools for designing dynamic plausible movements though subtle minor voluntary movements that make the motion realistic. However, they tend to be skipped due to the difficulty in describing them from simple rewards such as moving forward, energy minimization and balance control. Physically-based controllers are relatively expensive with respect to computation due to the fact that they need to perform detailed collision detection and dynamics calculations.
A counterpart of physically-based animation is data-driven character animation techniques that make use of motion capture data for interactive character control. Data structures such as motion graphs and finite state machines are used to synthesize continuous character movements from unstructured motion capture data. As connectivity within the motion graph can significantly affect the responsiveness of a controlled character, computer games and other interactive applications often use the more straightforward structure of a finite state machines where the connectivity is explicit and the subsequent motion is predictable.
Most methods based on classic machine learning techniques suffer from scalability issues: they first require a huge amount of data preprocessing including motion classification and alignment. Most existing animation systems handle collisions between animated characters and a surrounding environment poorly.
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.